CIとモデリング ―拡げて抑える―
発表日 2021年9月27日
発表者 村田純一(九州大学)
発表概要
基本の主張
一般性を持つ有用なモデルを作成するためには,使用するデータを増やすことやモデルの構造を複雑化することなどの「拡げる」と,一般性を確保し計算量を減らすための「抑える」の適切な組み合わせが必要である.「抑える」は帰納や仮設生成につながる
「拡げて抑える」
より良い解を含むように枠組み(解候補集合)を拡げる
効率的に良い解を選定できるように,拡げた枠組みに制約を課す(抑える)
モデルの構造
基本はさまざまな構造の有向グラフ
横に,縦に,積層して,拡げることができる
拡げすぎると人間の手に負えなくなるので計算を活用する.それでも難しいときは適切に「抑え」を導入する
抑える道具
評価,統計量,ヒューリスティクス,情報圧縮
考え方
誤差小,汎化性能高,類似性・共通性の存在を仮定,人間の真似,特徴量の存在を仮定
拡げて抑えるの例
深層学習
拡げる:超多層化; 抑える:畳み込み層やauto encoder
進化計算(CMA-ES,DE)
拡げる:探索の方法も探索の対象とする; 抑える:探索結果によって次の探索点決定プロセスを変更
抑え方
拡げた後に抑える
ランダムな絞り込み,指標に基づいた絞り込み(正則化),divide and conquer,emsemble
拡げながら抑える
CMA-ES,DE
逆最適化による意思決定のモデリング
意思決定の結果から意思決定で用いられた目的関数を推定する
行動を表すモデルにその行動の理由を表すモデルを積層する形の「拡げる」
不良設定問題であるので解の自由度の制限(「抑える」)が必要
議論内容
抑えるという言葉は妥当か? 「緻密にする」ということではないのか?
緻密にするのは,論理的などの規範を持った「抑える」である.厳密なものがない場合はヒューリスティクスを使う
縦・横・積層で拡げるという話は,構造の中に単位要素があることが前提になっているように見える
もともと使っていたものをどう拡げるかについての説明である
機能を拡げるのは縦・横・積層の枠組みには入らないのでは
そのとおり
横に拡げる,つまり基底関数を増やす方がよいと考えるが,世の中で言われているように,縦に拡げる,つまり層を深くするのがよいというのが理解できない.縦に拡げても基底関数は増えない
層を重ねると特定の役割をもった基底関数が生じる.層毎に違う役割をもっていることが重要.その役割は「抑える」(制約)によってもたらされる.それによって説明可能性も得られる
CIにおける計算について以前CI研究会で議論したものと,今回の説明の中の計算の役割とは同じだろうか
ここでは高速な計算能力を活用するという意味で使っている
CI研究会での議論では情報処理をすべて「計算」とみなすという議論であった
両者は明確な違いがあるわけではない.意味は情報処理だが実施にやっていることは計算
人間がやっている処理に乱数は含まれない.知識や常識を活用してもっと高度なことをやっている.コンピュータではそれができないので手当たり次第試すという別のアプローチをとっている
逆最適化が人間の意思決定のモデリングになる,whyを表すモデルを作るというのはどういうことか.それはモデリングになっているのだろうか.抑える方法がわかるという点こそがモデリングのように思える
最後の指摘について,そのような面があるのは確か
事前知識の活用は有用
逆強化学習の目的は意思決定のモデリングなのか.そもそもの目的は何か
コンパクトな行動のモデリング.熟練者の真似.人の行動の誘導など
最初に説明されたモデリングの定義のどれに相当するのか
帰納に相当する
抑える方法がいくつか提示された.あらかじめ与えた制約条件を使うのか,計算で抑えるのか
結局は何かの規範があってそれで抑える.規範を満たす範囲が前もってわかっているのか,絞り込んでいくのかの違いがある
PSOはあらかじめ抑えていて,そのタガを外す方法を考えている.DEやESは探索を拡げていて,どう抑えるのかの工夫をしている
モデリングを構造の最適化,パラメータの最適化ととらえると,最適化の拡げる・抑えるで話をすることができる